AI技术专题之四:AI在Deep Edge领域中的应用
☝ 点击上方 “意法半导体中国”,关注我们
机器学习和深度学习网络有可能通过提供更强大的全新方法来分析现场数据,从而极大地提高产品价值。Deep Edge AI使得算法的规模正不断缩小,目前能够在传感器旁的端侧进行计算。智能设备数量指数级增长目前需要经过优化的处理能力,以便为许多市场(如工业4.0、消费品、建筑管理、医疗保健和农业等领域)带来更多价值。
然而,对于AI/ML数据科学家来说,将他们的模型移植到嵌入式环境具有很大挑战性,因为嵌入式系统在计算、内存和功耗方面受到一定限制。微控制器可与嵌入式应用完美匹配,因为它们专为特定的细分市场而定制,具有低功耗和开发速度快等特点,绝对物超所值。然而,与大型应用处理器相比,在Cortex-M上进行开发时需要完全不同的嵌入式开发技能。
为了帮助企业在最短时间内设计出最佳产品,意法半导体提供一个全面的AI生态系统,其包括硬件、软件开发工具以及STM32微控制器和微处理器上所运行的示例代码。这些示例可以快速衍生以实现新的功能,这些工具支持对优化的机器学习模型(例如但不限于,神经网络)进行移植测试、基准检查以及迭代。
STM32Cube.AI是广泛使用的STM32CubeMX配置与代码生成工具,可在基于STM32 Arm®Cortex®-M的微控制器上使用AI。
用户将受益于STM32CubeMX特性,如面向所有STM32板的代码生成,以及可在不同的操作系统(Windows、Linux或Mac OS)上兼容IAR Embedded Workbench®、MDK-ARM以及STM32CubeIDE(GCC编译器)。
它通过参数约束的动态验证自动配置外设和中间件功能模式,通过最佳参数和动态验证实现自动初始化,进而自动配置时钟树。
STM32Cube集成使得STM32Cube.AI用户能够有效地在广泛的STM32微控制器系列产品之间移植模型,并且(在相似型号适用于不同产品的情况下)在STM32产品之间轻松迁移。
该插件扩展了STM32CubeMX功能,可自动转化预训练AI模型,将生成的优化库集成到用户项目中,而不是人工构建代码,并支持将深度学习解决方案嵌入到广泛的STM32微控制器产品组合中,从而为每个产品添加新的智能化功能。
STM32Cube.AI原生支持各种深度学习框架,如Keras、TensorFlow™ Lite、ConvNetJs,并支持可导出为ONNX标准格式的所有框架,如PyTorch™、Microsoft®Cognitive Toolkit、MATLAB®等。
此外,STM32Cube.AI支持来自广泛ML开源库Scikit-Learn的标准机器学习算法,如孤立森林、支持向量机(SVM)、K-Means。
在实践中,用户只需在STM32CubeMX中加载一个预训练模型,然后选择一个AI运行环境。STM32Cube.AI可自动分析模型并显示正确存储和运行模型所需的最小内存空间。然后用户可在兼容的STM32设备列表中选择适合自己项目需求的最佳STM32微控制器。
一旦选定了合适的微控制器,可为该微控制器启动一个项目,或者直接选择适当的MCU设置所自动配置的开发板。可以选择一个或多个AI/ML模型,并通过能够评估总体模型复杂度以及RAM和闪存占用空间的工具进行分析。还能以图形方式将模型可视化,并显示每一层以查看模型的复杂性究竟位于何处。Keras和TensorFlow™ Lite神经网络支持8位量化模型。还可以使用自定义层扩展该工具,以添加包含用户定义层的模型并对其进行基准测试。
STM32Cube.AI有助于模型优化,所以更大的网络也能移植到微控制器上。图形用户界面提供生成的代码中所用缓冲区的全面视图,并包含几个优化选项(例如输入/输出缓冲区和激活缓冲区之间的存储器重叠),以便将实现模型所需的内存空间降至最低。
STM32Cube.AI支持使用外部存储器,并允许在不同的存储区之间轻松分配权重。一旦模型存储在多个阵列中,(例如)可以将模型权重的一部分映射到内部,将其它部分映射到外部Flash存储器中,将激活缓冲区映射到外部RAM中。
该工具旨在加快开发速度,并使开发人员能够在桌面验证自己的模型以进行快速基准测试,以及在设备上验证自己的模型以测量最终模型性能(包括量化的影响)。在验证过程的最后,一个对照表总结了原始模型与STM32模型的精度和误差,并可选择性提供每层的复杂性报告和执行期间测得的推理时间。
神经网络编译器提供的优化代码提高了效率并减少了内存占用。各层和内核被设计为在STM32上运行并利用可用的设备特性。选定所有设置后,STM32Cube.AI会生成一个应用模板,可以直接与您首选IDE中的应用特定代码进行集成。然后可以使用所有STM32开发工具(如STM32CubeMX、STM32CubeMonitor、STM32CubeMonPower、STM32CubeMonRF、STM32CubeMonUCPD)和诸多合作伙伴工具设计采用人工智能算法的最终应用。
对于希望拥有一个跨多个项目的通用框架的开发人员,STM32Cube.AI还支持TensorFlow Lite运行环境。可以从用户界面中选择它作为STM32Cube.AI运行环境的替代方案,即使它可能会降低性能,因为运行环境没有针对STM32进行完全优化。
由意法半导体对STM32Cube.AI提供维护,可以确保高质量开发所需的长期支持和可靠性。每次推出新的主要版本时,都会有针对性地定期更新,确保兼容最新AI框架。
该工具既能作为图形用户界面,也可以作为命令行,所以能够轻松集成到DevOps流程中,以确保AI开发的所有领域定期得到验证。甚至可以构建一个带有部署后检查功能的AutoML流,利用分析和验证功能识别与用例的目标存储空间、推理时间和精度约束相匹配的合适模型。
模型还可以在现场持续更新,因为库可以部署为可重定位的模型。因此无需执行完整的固件升级即可轻松更新模型拓扑和权重。简化了产品更新,并通过无线模型更新(或局部FOTA)确保Deep Edge AI与现场观察到的任何变更保持一致,或只是通过模型/软件更新升级新功能。
最后,STM32Cube.AI只是意法半导体所提供的更广泛生态系统的一部分,使得STM32用户可以在STM32上使用AI功能。 更多细节将在后续文章中予以介绍。
▷ 学知识赢好礼!AI技术专题之一:意法半导体人工智能解决方案概述
长按二维码关注,了解更多信息专业 | 科技 | 有范